1. Field of the Invention
The present invention relates to reducing lengths of computer file names and for retrieving files with reduced length names. More particularly, the invention relates to using a unique file identifier for reducing file names and for retrieving files with reduced length names.
2. Discussion of Background Art
Many existing Application Programming Interfaces (APIs) only support file names that contain thirty-one (31) or fewer characters. Other APIs, however, permit file names as long as 255 characters or longer. Hence, a problem arises when a file name longer than 31 characters needs to be accessed via an API which only permits a maximum file length of 31 characters. Additionally, many APIs have a limited set of representable or allowable characters and, thus, cannot effectively support file names that include characters not within a given API's set of allowable characters.
One manner in which the prior art has accommodated overlength file names is by merely truncating the portion of the file name that exceeds the maximum permitted file name length. For example, if a file name is 145 characters long, the final 114 characters (the number of characters in excess of 31) are truncated from the end of the file name to create a file name of acceptable length. This approach presents a number of problems.
For example, one significant limitation with merely truncating the portion of the file name in excess of the maximum allowable length is that a given data volume may contain a number of distinct, but lengthy, names which, when truncated, become identical. That is, the distinguishing features of a file name may be located toward the end of the file name and would thus be removed by the truncation, potentially rendering several truncated file names identical. Having identical file names associated with different files is highly undesirable and problematic in that the different files having identical truncated file names cannot be distinguished by file name.
An additional problem associated with this approach is that by truncating the end of the file name, valuable information that may be present in a file name extension is lost. In general, file names frequently have extensions appended to the end of the file name to indicate the type of content in the associated file. For example, the file name extension of the file name "example.txt" is the character string ".txt" which indicates to the system and to the user that the file associated with this file name is a text file and should be opened with an application appropriate for such a file type. By merely truncating the end of a file name, the extension is deleted and valuable information concerning the type of the file contents is lost. Consequently, this approach is highly unsatisfactory for many applications.
Another approach has been to truncate a lengthy file name and to then modify the truncated name until the name becomes unique. This approach, however, requires that copies of the lengthy file names and the associated truncated file names be continuously maintained and monitored to verify that all the lengthy file names and all the truncated file names are always unique. The requirement of maintaining and searching through both sets of file names, on a continual basis, to confirm that both sets of file names are unique, may create system performance problems and, therefore, makes this approach undesirable.
Other attempts to address the problem of reducing the lengths of file names have employed a probabilistic approach in which the shortened file names are likely, but not guaranteed, to be unique. One of these attempts addresses the problem by truncating the file name and then appending a number, based on a check sum of the entire name, to the truncated file name. A check sum is a formula through which the characters of a file name may be passed to arrive at a number. Unfortunately, however, like some of the other approaches, this probabilistic approach is limited in that the shortened file names are not guaranteed to be unique.
Consequently, a need exists for a system and method for reliably reducing the length of a file name that guarantees a unique reduced file name. Such a method should not be so burdensome that the creation and use of reduced file names significantly reduces the performance of the system. Moreover, such a system and method should preserve the valuable information regarding file type found in the file name extension. Lastly, an additional need exists to provide a system and method for reliably reducing a file name including unrepresentable characters into a unique representable file name.